.ProseMirror {
	@apply p-12 px-8 sm:px-12;
}

.ProseMirror .is-editor-empty:first-child::before {
	content: attr(data-placeholder);
	float: left;
	color: hsl(var(--muted-foreground));
	pointer-events: none;
	height: 0;
}
.ProseMirror .is-empty::before {
	content: attr(data-placeholder);
	float: left;
	color: hsl(var(--muted-foreground));
	pointer-events: none;
	height: 0;
}

/* Custom image styles */

.ProseMirror img {
	transition: filter 0.1s ease-in-out;

	&:hover {
		cursor: pointer;
		filter: brightness(90%);
	}

	&.ProseMirror-selectednode {
		outline: 3px solid #5abbf7;
		filter: brightness(90%);
	}
}

.img-placeholder {
	position: relative;

	&:before {
		content: "";
		box-sizing: border-box;
		position: absolute;
		top: 50%;
		left: 50%;
		width: 36px;
		height: 36px;
		border-radius: 50%;
		border: 3px solid var(--novel-stone-200);
		border-top-color: var(--novel-stone-800);
		animation: spinning 0.6s linear infinite;
	}
}

@keyframes spinning {
	to {
		transform: rotate(360deg);
	}
}

/* Custom TODO list checkboxes – shoutout to this awesome tutorial: https://moderncss.dev/pure-css-custom-checkbox-style/ */

ul[data-type="taskList"] li > label {
	margin-right: 0.2rem;
	user-select: none;
}

@media screen and (max-width: 768px) {
	ul[data-type="taskList"] li > label {
		margin-right: 0.5rem;
	}
}

ul[data-type="taskList"] li > label input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	background-color: hsl(var(--background));
	margin: 0;
	cursor: pointer;
	width: 1.2em;
	height: 1.2em;
	position: relative;
	top: 5px;
	border: 2px solid hsl(var(--border));
	margin-right: 0.3rem;
	display: grid;
	place-content: center;

	&:hover {
		background-color: hsl(var(--accent));
	}

	&:active {
		background-color: hsl(var(--accent));
	}

	&::before {
		content: "";
		width: 0.65em;
		height: 0.65em;
		transform: scale(0);
		transition: 120ms transform ease-in-out;
		box-shadow: inset 1em 1em;
		transform-origin: center;
		clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
	}

	&:checked::before {
		transform: scale(1);
	}
}

ul[data-type="taskList"] li[data-checked="true"] > div > p {
	color: var(--muted-foreground);
	text-decoration: line-through;
	text-decoration-thickness: 2px;
}

/* Overwrite tippy-box original max-width */

.tippy-box {
	max-width: 400px !important;
}

.ProseMirror:not(.dragging) .ProseMirror-selectednode {
	outline: none !important;
	background-color: var(--novel-highlight-blue);
	transition: background-color 0.2s;
	box-shadow: none;
}

.drag-handle {
	position: fixed;
	opacity: 1;
	transition: opacity ease-in 0.2s;
	border-radius: 0.25rem;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' style='fill: rgba(0, 0, 0, 0.5)'%3E%3Cpath d='M3,2 C2.44771525,2 2,1.55228475 2,1 C2,0.44771525 2.44771525,0 3,0 C3.55228475,0 4,0.44771525 4,1 C4,1.55228475 3.55228475,2 3,2 Z M3,6 C2.44771525,6 2,5.55228475 2,5 C2,4.44771525 2.44771525,4 3,4 C3.55228475,4 4,4.44771525 4,5 C4,5.55228475 3.55228475,6 3,6 Z M3,10 C2.44771525,10 2,9.55228475 2,9 C2,8.44771525 2.44771525,8 3,8 C3.55228475,8 4,8.44771525 4,9 C4,9.55228475 3.55228475,10 3,10 Z M7,2 C6.44771525,2 6,1.55228475 6,1 C6,0.44771525 6.44771525,0 7,0 C7.55228475,0 8,0.44771525 8,1 C8,1.55228475 7.55228475,2 7,2 Z M7,6 C6.44771525,6 6,5.55228475 6,5 C6,4.44771525 6.44771525,4 7,4 C7.55228475,4 8,4.44771525 8,5 C8,5.55228475 7.55228475,6 7,6 Z M7,10 C6.44771525,10 6,9.55228475 6,9 C6,8.44771525 6.44771525,8 7,8 C7.55228475,8 8,8.44771525 8,9 C8,9.55228475 7.55228475,10 7,10 Z'%3E%3C/path%3E%3C/svg%3E");
	background-size: calc(0.5em + 0.375rem) calc(0.5em + 0.375rem);
	background-repeat: no-repeat;
	background-position: center;
	width: 1.2rem;
	height: 1.5rem;
	z-index: 50;
	cursor: grab;

	&:hover {
		background-color: var(--novel-stone-100);
		transition: background-color 0.2s;
	}

	&:active {
		background-color: var(--novel-stone-200);
		transition: background-color 0.2s;
		cursor: grabbing;
	}

	&.hide {
		opacity: 0;
		pointer-events: none;
	}

	@media screen and (max-width: 600px) {
		display: none;
		pointer-events: none;
	}
}

.dark .drag-handle {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' style='fill: rgba(255, 255, 255, 0.5)'%3E%3Cpath d='M3,2 C2.44771525,2 2,1.55228475 2,1 C2,0.44771525 2.44771525,0 3,0 C3.55228475,0 4,0.44771525 4,1 C4,1.55228475 3.55228475,2 3,2 Z M3,6 C2.44771525,6 2,5.55228475 2,5 C2,4.44771525 2.44771525,4 3,4 C3.55228475,4 4,4.44771525 4,5 C4,5.55228475 3.55228475,6 3,6 Z M3,10 C2.44771525,10 2,9.55228475 2,9 C2,8.44771525 2.44771525,8 3,8 C3.55228475,8 4,8.44771525 4,9 C4,9.55228475 3.55228475,10 3,10 Z M7,2 C6.44771525,2 6,1.55228475 6,1 C6,0.44771525 6.44771525,0 7,0 C7.55228475,0 8,0.44771525 8,1 C8,1.55228475 7.55228475,2 7,2 Z M7,6 C6.44771525,6 6,5.55228475 6,5 C6,4.44771525 6.44771525,4 7,4 C7.55228475,4 8,4.44771525 8,5 C8,5.55228475 7.55228475,6 7,6 Z M7,10 C6.44771525,10 6,9.55228475 6,9 C6,8.44771525 6.44771525,8 7,8 C7.55228475,8 8,8.44771525 8,9 C8,9.55228475 7.55228475,10 7,10 Z'%3E%3C/path%3E%3C/svg%3E");
}

/* Custom Youtube Video CSS */
iframe {
	border: 8px solid #ffd00027;
	border-radius: 4px;
	min-width: 200px;
	min-height: 200px;
	display: block;
	outline: 0px solid transparent;
}

div[data-youtube-video] > iframe {
	cursor: move;
	aspect-ratio: 16 / 9;
	width: 100%;
}

.ProseMirror-selectednode iframe {
	transition: outline 0.15s;
	outline: 6px solid #fbbf24;
}

@media only screen and (max-width: 480px) {
	div[data-youtube-video] > iframe {
		max-height: 50px;
	}
}

@media only screen and (max-width: 720px) {
	div[data-youtube-video] > iframe {
		max-height: 100px;
	}
}

/* CSS for bold coloring and highlighting issue*/
span[style] > strong {
	color: inherit;
}

mark[style] > strong {
	color: inherit;
}
